"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/5/29 10:44
@Description :
逗号分隔值（Comma-Separated Values，CSV，有时也称为字符分隔值，因为分隔字符也可以不是逗号），
其文件以纯文本形式存储表格数据（数字和文本）
student.csv
    name,age,score
    tom,20,80
    jack,25,70

使用 python中的内置模块 csv  实现对.csv文件的写出和读取
写出csv数据常见的两种形式
1. 列表  [[],[],[]]
2. 字典 [{},{},{}]
"""
import csv

# 列表形式的数据写出到 csv文件

"""
students = [
    ['name', 'age', 'score'],
    ['tom', 20, 80],
    ['jack', 25, 70]
]

"""

students = [
    {
        'name': 'tom',
        'age': 20,
        'score': 80
    },
    {
        'name': 'tom',
        'age': 20,
        'score': 80
    }, {
        'name': 'tom',
        'age': 20,
        'score': 80
    }
]

"""
#创建目标csv文件  newline='' 解决写出有空行的问题
with open('students.csv', 'w',newline='') as f:
    # 通过csv.writer(f)获取 获取写出对象
    writer = csv.writer(f)
    for student in students:
        writer.writerow(student)
"""

# 将列表中嵌套的字典格式的数据写出到.csv文件
with open('students.csv', 'w', newline='') as f:
    # fieldnames  表头数据
    dict_writer = csv.DictWriter(f, fieldnames=students[0].keys())
    # 先写出表头   代码不执行没有表头
    dict_writer.writeheader()
    # 写出具体数据
    dict_writer.writerows(students)

"""
# 读取.csv文件    list
with open('students.csv', 'r',newline='') as f:
    # reader 对象
    reader = csv.reader(f)
    for row in reader:
        print(row,type(row))
"""

"""
#读取csv文件中的数据为字典类型
with open('students.csv', 'r', newline='') as f:
    dict_reader = csv.DictReader(f)
lst_rows = list(dict_reader)
print(lst_rows)

"""
